#include <TimerOne.h>

volatile long uusiAika=0, vanhaAika=0;
volatile int pulssiMaara = 0;
volatile long B = 0;
volatile float P = 0, kulunutAika=0;
volatile long temp = 3600000;

void setup()
{
  Serial.begin(9600);
  Serial.setTimeout(10000);
  Serial.println("Tehomittauksen testaus");
  Serial.println("Anna pulssimaara");
  pulssiMaara = Serial.parseInt();
  Serial.println("pulssimaara");
  Serial.println(pulssiMaara);
  B = temp / pulssiMaara;
  Serial.println("vakio");
  Serial.println(B);
  Serial.println("Painele enter tasaisin valiajoin, esim 1 sek");
  Serial.println("lopuksi paina esc");
}


void loop()
{
  int merkki, pulssiVali;
  if (Serial.available()>0)
  {
     merkki = Serial.read();
     if (merkki == 27) // escape
     {
         P = laskeHetkellinenTeho(kulunutAika);
        tulostaHetkellinenTehoSarjalinjaan(P);
     }
     else if (merkki == 13) // enter
     {
        kulunutAika = laskePulssivali();
     }
  }
}


//laskee pulssien välisen ajan 
float laskePulssivali()
{
  uusiAika = millis();
  if (uusiAika > vanhaAika)
  {
    kulunutAika = uusiAika - vanhaAika;
    vanhaAika = uusiAika;
  }
  else
  {
     vanhaAika = uusiAika; 
  }
  return kulunutAika/1000;
}

float laskeHetkellinenTeho(float pulssiVali)
{
   return  B / pulssiVali;
}

void tulostaHetkellinenTehoSarjalinjaan(float P)
{
  Serial.print("Teho on :");
  Serial.print(P);
}

void tulostaHetkellinenTehoLCDlle()
{
  
}
